Luleå algorithm